package com.huellas.negocio;

import java.util.Collection;

import com.huellas.bean.ClienteBean;
import com.huellas.bean.EstadoClienteBean;
import com.huellas.bean.RolBean;
import com.huellas.dao.ClienteDAO;
import com.huellas.excepcion.DAOExcepcion;

public class GestionCliente {
	
	public void insertarUsuario(int CoUsuario, String NoUsuario, String ApPaterno, String ApMaterno, String Direccion, String Email, int Celular, String NoTipoUsuario, int CoRol, int CoEstadoCliente) throws DAOExcepcion{
		
		RolBean rolBean = new RolBean();
		rolBean.setCoRol(CoRol);
		
		EstadoClienteBean estadoClienteBean = new EstadoClienteBean();
		estadoClienteBean.setCoEstadoCliente(CoEstadoCliente);
		
		ClienteBean clienteBean = new ClienteBean();
		clienteBean.setCoUsuario(CoUsuario);
		clienteBean.setNoUsuario(NoUsuario);
		clienteBean.setApPaterno(ApPaterno);
		clienteBean.setApMaterno(ApMaterno);
		clienteBean.setDireccion(Direccion);
		clienteBean.setEmail(Email);
		clienteBean.setCelular(Celular);
		clienteBean.setNoTipoUsuario(NoTipoUsuario);
		clienteBean.setRolBean(rolBean);
		clienteBean.setEstadoClienteBean(estadoClienteBean);
		
		ClienteDAO clienteDAO = new ClienteDAO();
		clienteDAO.insertarUsuario(clienteBean);
	}
	
	public void insertarCliente(int CoUsuario, String NoUsuario, String ApPaterno, String ApMaterno, String Direccion, String Email, int Celular, String NoTipoUsuario, int CoRol, int CoEstadoCliente, String ImagenPerfil, int TelefonoFijo) throws DAOExcepcion{
		
		ClienteBean clienteBean = new ClienteBean();
		clienteBean.setImagenPerfil(ImagenPerfil);
		clienteBean.setTelefonoFijo(TelefonoFijo);
		clienteBean.setCoUsuario(CoUsuario);
		
		this.insertarUsuario(CoUsuario, NoUsuario, ApPaterno, ApMaterno, Direccion, Email, Celular, NoTipoUsuario, CoRol, CoEstadoCliente);
		
		ClienteDAO clienteDAO = new ClienteDAO();
		clienteDAO.insertarCliente(clienteBean);
	}
	
	public ClienteBean obtenerRegistroCliente(String NoUsuario, String ApPaterno, String ApMaterno, String Email, int Celular, String NoTipoUsuario, int TelefonoFijo) throws DAOExcepcion{
		ClienteDAO clienteDAO = new ClienteDAO();
		return clienteDAO.obtenerRegistroCliente(NoUsuario, ApPaterno, ApMaterno, Email, Celular, NoTipoUsuario, TelefonoFijo);
	}
	
	public boolean validarRegistroCliente(String NoUsuario, String ApPaterno, String ApMaterno, String Email, int Celular, String NoTipoUsuario, int TelefonoFijo) throws DAOExcepcion{
		
		boolean validar = false;
		
		ClienteBean registroCliente = this.obtenerRegistroCliente(NoUsuario, ApPaterno, ApMaterno, Email, Celular, NoTipoUsuario, TelefonoFijo);
		
		if (NoUsuario.equals(registroCliente.getNoUsuario()) && ApPaterno.equals(registroCliente.getApPaterno()) && ApMaterno.equals(registroCliente.getApMaterno()) && Email.equals(registroCliente.getEmail()) 
			&& Celular == registroCliente.getCelular() && NoTipoUsuario.equals(registroCliente.getNoTipoUsuario()) && TelefonoFijo == registroCliente.getTelefonoFijo()){
			validar = false;
		}else{
			validar = true;
		}
			
		return validar;
	}
	
	public Collection<ClienteBean> buscarCliente(String NoUsuario, String ApPaterno, String ApMaterno) throws DAOExcepcion{
		ClienteDAO clienteDAO = new ClienteDAO();
		return clienteDAO.buscarCliente(NoUsuario, ApPaterno, ApMaterno);
	}
}
